This invention relates to a computer hard drive and in particular to the resizing of protected and drive data storage areas of a personal computer system hard drive and the re-apportioning of data stored on the resized hard drive.
Personal computers generally have a micro-processor, monitor, keyboard, floppy disk drive, hard drive, memory and communication ports. In general, the micro-processor, or central processor unit, is connected by bus structures with the memory and with input/output devices interconnecting the bus structures with the monitor, keyboard, communication ports, and the floppy and hard drives. Typically, software known as operating systems, such as a disk operating system (DOS) and Windows(copyright) systems and the like, that have been loaded onto the personal computer hard drive and read into the memory, enable the components of the personal computer to work together to process data. Under control of an operating system, the keyboard or communication port may be used to enter data into the central processor unit. The central processor unit may process the data and store the processed data in memory, on a disk inserted into the floppy disk drive or on the hard drive. In general, the keyboard entered and processed data may be displayed on the monitor or sent to the communication ports to be printed or sent to a modem for transmission to external networks and devices connected to the personal computer.
Typically, a manufacturer or user of the personal computer loads and stores operating systems onto the computer hard drive that functions to interconnect the various components of the personal computer together to enable the computer user to enter data into the computer, compile the entered data, display the data, transmit the data to distant entities and store the data on floppy disks and on the computer hard drive. The computer user may load and store software programs such as word processors, spreadsheets, and various other types of software programs on the computer hard drive that enable the computer user to execute a wide variety of activities. The data complied by the software programs is often entered and stored on the computer hard drive as user information.
Typically, computer hard drives store the user information or data on multiple magnetic disks mounted on a spindle that is rotated in the hard drive. As the disks are rotated in the drive by the spindle, data is read from or written onto the disks by means of read/write head assembles carried on arms extending over the surfaces of the magnetic disks. The head assembles are positioned by a motor assembly under the control of a disk controller controlled by commands from the computer central processor unit. Today""s typical computer hard drives have multiple magnetic disks with a read/write head positioned on each side of the disk surface and all under control of the same motor assembly. Each side of the magnetic disks is typically divided into a series of concentric rings referenced as a cylinder extending down through the disks. The set of rings on all sides of all disks lying on the same imaginary cylinder extending down through the disks have the same cylinder identification. Each cylinder is logically divided by a computer operating system into sectors which can be numbered with respect to some reference mark on the magnetic disk. Each sector of a disk has a unique identification, such as a cylinder number, disk side and sector number. Alternatively, a single sector number can uniquely identify a particular sector in a system where sectors are numbered in a serpentine manner, beginning with the outermost cylinder on an upper side and continuing through the sectors on the same cylinder to the lower disk side. This configuration is continued on the same cylinder of the next disk and repeated for the next inward cylinder and so on until all sectors have been numbered. Typical computer operating systems designate the space on the disk in a strategy referred to as a partition with the details of the partitioning being recorded on a disk in the form of a xe2x80x9cpartition tablexe2x80x9d.
In general, a computer is divided by manufacturers of the hard drive into two sections, one of which is herein identified as a protected area and the other as a drive data area such that the total size of the hard drive is the combination of the protected and drive data areas. Thus, if the protected area of the disk is increased by 10 million bytes the drive data area would decrease by 10 million bytes. In general, the drive data area consists of general structures such as boot records, partition tables, file allocation tables and user information and data. A computer operating system stored on the computer hard drive has parts located in each of the general structures and commonly exists only in the drive data area. The protected area is normally considered to consist of data and the boot engineering extension record (BOOT).
The drive data area must be connected throughout in a contiguous unbroken sequence and generally begins with the lowest numbered sectors of the hard drive. The protected area must also be contiguous and generally resides at the end of the hard drive in the highest numbered sectors of the hard drive. The protected area is determined by the hard drive manufacturer and cannot be created or changed by the end user of the personal computer. However, the data in the protected area may be accessed by the end user through mechanisms such as the BIOS, hotkeys and the like, provided by the manufacturers of the hard drive and personal computer.
In general, hard drive manufactures do not want to significantly reduce the size of the drive data area available to the end user and typically want to keep the size of the protected area small in the range of 200 megabytes to 2 gigabytes. In general, only small operating systems such as DOS are placed in the protected area. A manufacturer may desire to provide free Windows-based programs in the protected area for use by the user who is able to copy the free programs into the drive data area available for the use of the end user. Providing these programs in the protected area saves the manufacture from having to provide the end user with a floppy or CD disk. The manufacturer may want to provide means for resizing the storage areas of the hard drive to make the protected area larger to store additional programs therein and once the programs have been copied out of the protected area, to make the protected area smaller so that the size of the drive data area can be increased for additional use by the end user.
A problem arises in the prior art that the sizes of the protected and drive data areas of the present day hard drives are fixed and there is no mechanism available to resize the protected and drive data areas once operating systems have been installed on the hard dive. Thus, it is desirable that that protected and drive data areas of hard drives be resized to enlarge the storage area in a protected area for software programs that can be made available to end users and to decrease the protected area and enlarge the drive data area after programs of the protected area have been copied into the drive data area.
It is an object of the invention to enable a computer system having an operating system installed on a hard drive to adjust the sizes of protected and drive data storage areas of the hard drive.
It is also an object of the invention to read the sizes of the protected and drive data areas of personal computer hard drives.
It is also an object of the invention to read boot engineering extension records stored in the protected area of a personal computer hard drive and to check the records for previously recorded structures stored in the protected area.
It is also an object of the invention to calculate sizes of new protected and drive data areas of a personal computer hard drive in accordance with the computer user requirements.
It is a further object of the invention to reorganize and reallocate the data previously stored in protected and drive data areas of a personal computer hard drive into the new calculated protected and drive data areas and to change the data entries of the new sized partition size, file allocation table and boot engineering extension record.
In a preferred embodiment of the invention, a computer in accordance with principles of the invention and having data storage apparatus with an operating system stored therein has software controlled selecting apparatus for selecting a hard drive of the storage apparatus and determining if the selected hard drive has a protected data area for storing protected data and a drive data area for storing user data. When it is determined that the computer has protected and drive data areas, the computer calculates sizes of new protected and drive data areas in accordance with requirements of the computer user and resets the sizes of the selected hard drive protected and drive data areas to the calculated new protected and drive data area sizes. The computer is then controlled to reallocate, move and update user data stored in the calculated new protected data area to the calculated new drive data area of the selected hard drive and updates data location tables within the new calculated drive data area. The computer is then rebooted to establish the new protected and user data areas on the selected hard drive.
Also in accordance with the preferred embodiment of the invention, a method for resizing data areas of storage apparatus of a computer having operating system information stored therein comprises the step of selecting a hard drive of the computer storage apparatus and determining if the selected hard drive has a protected data area for storing protected data and a drive data area for storing data of the computer user. The method calculates sizes of new protected and drive data areas in accordance with requirements of the computer user and resets the sizes of the selected hard drive data areas to the calculated new protected and drive data areas. The user data stored in the calculated new protected data area is reallocated, updated and moved to the calculated new drive data area of the selected hard drive and the data location tables within the calculated new drive data area of the selected hard drive are updated. The computer is then rebooted to establish the new protected and drive data areas on the selected hard drive.
In a further embodiment of the invention, a storage medium, such as floppy disks, a tape or CD-ROM, for enabling operation of a personal computer to resize data areas of storage apparatus having operating system information stored therein has a method stored therein for selecting a hard drive of the computer storage apparatus and determining if the selected hard drive has a protected data area for storing protected data and a drive data area for storing data of the computer user. The stored method calculates sizes of new protected and drive data areas in accordance with requirements of the computer user and resets the sizes of the hard drive data storage areas to the calculated new protected and drive data areas. User data stored in the calculated new protected data area is reallocated, updated and moved to the calculated new drive data area of the selected hard drive and data location tables of the hard drive are updated to conform to the new calculated protected and drive data areas. The computer is then rebooted to establish the new protected and drive data areas on the selected hard drive.